#!/bin/bash
# =====================================================
# 📦 iOS 打包脚本（支持指定 git 版本并在桌面构建）
# 用法：
#   ./build_ios_git.command                # 拉取最新代码
#   ./build_ios_git.command <git-ref>      # 拉取指定版本（tag/commit/branch）
# =====================================================

set -euo pipefail

# 确保在脚本所在的项目根目录执行
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
cd "$SCRIPT_DIR"

# 检查是否在 git 仓库内
if ! git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
  echo "❌ 请在项目仓库根目录下执行该脚本"
  exit 1
fi

GIT_REF="${1:-}"
REPO_URL="$(git config --get remote.origin.url)"

if [ -z "$REPO_URL" ]; then
  echo "❌ 无法获取远程仓库地址"
  exit 1
fi

DESKTOP_DIR="$HOME/Desktop"
CLONE_DIR="$DESKTOP_DIR/casdon_build"

echo "🧹 清理旧的桌面构建目录：$CLONE_DIR"
rm -rf "$CLONE_DIR"

echo "📥 克隆仓库到桌面..."
git clone "$REPO_URL" "$CLONE_DIR"

# ✅ 同步本地 ios 目录（包含 Pods、配置等），确保构建环境一致
if [ -d "$SCRIPT_DIR/ios" ]; then
  echo "📂 同步本地 ios 目录到克隆工程..."
  echo "   - 包含 Pods / 配置文件，确保无需重新 pod install"
  rsync -a --delete "$SCRIPT_DIR/ios/" "$CLONE_DIR/ios/"
  echo "✅ ios 目录同步完成"
else
  echo "⚠️ 未找到本地 ios 目录，使用仓库默认版本"
fi

cd "$CLONE_DIR"

if [ -n "$GIT_REF" ]; then
  echo "📌 切换到指定版本：$GIT_REF"
  git checkout "$GIT_REF"
else
  echo "🔄 拉取最新代码"
  git pull --ff-only
fi

echo "🏗 开始执行 build_ios.command ..."
bash build_ios.command

echo "🏗 开始执行 build_ios_hoc.command ..."
bash build_ios_hoc.command

# 处理最终 IPA 文件名
COMMIT_HASH=$(git rev-parse --short=10 HEAD)
FINAL_IPA_NAME="casdon_${COMMIT_HASH}.ipa"
IPA_DIR="build/ios/ipa"
LATEST_IPA=$(ls -t "$IPA_DIR"/*.ipa 2>/dev/null | head -n 1 || true)

if [ -n "$LATEST_IPA" ] && [ -f "$LATEST_IPA" ]; then
  mv "$LATEST_IPA" "$IPA_DIR/$FINAL_IPA_NAME"
  echo "🏷 重新命名 IPA 为：$FINAL_IPA_NAME"
else
  echo "⚠️ 未找到生成的 IPA 文件，请检查 build_ios.command 输出"
fi

echo "✅ build_ios_git.command 完成"
